Computer graphics systems are important components in many applications, such as CAD/CAM, computer animation and gaming, visualization systems, flight simulators, special effects, medical imaging, architectural visualization, virtual reality, etc.
Computer graphics involves the design or modeling of objects and scenes to be displayed (typically 3-dimensional, but can be 2-dimensional), which models and designs are translated into data and instructions in computer-readable form. Computer graphics systems use these data and instructions, perhaps under the further stimulus of a user input through a joystick for example, to render these objects and scenes on a display for human perception.
During rendering, ray tracing techniques can be used to determine which of the modeled objects and/or portions thereof are to be included in a scene (perhaps from a perspective determined from a user input). Recursive ray tracing techniques can further determine how the appearance of some objects may be affected by the presence of other objects and light sources (e.g. shadows). Although typical computer graphics systems allow designers to specify how individual objects are to be displayed (e.g. lighting, special effects, textures, etc.), it may be desirable to allow a designer to further specify whether and how certain objects can affect the appearance of certain other objects. For example, a designer may wish to force one object not to be shadowed from another object, even though the other object may lie in a path between the first object and a specified light source. This presents a problem that has not been addressed by the prior art, including computer graphics systems employing a ray tracing rendering scheme.